package com.mybpm.core.vo

import com.alibaba.fastjson.JSON

/**
 * 任务提交参数列表
 */
public class TaskSubmit {

    /** 请求头信息 */
    Header header
    /** 流程定义id */
    String processId
    /** 流程定义name，优先使用id */
    String processName
    /** 任务id */
    String taskId
    /** 当前操作人id，优先取当前登录人 */
    String userId
    /** 当前操作人name，优先取当前登录人 */
    String userName
    /** 待办人及环节、路径 */
    List<Node> nodeList
    /** 表单数据 */
    Map form

    public static List<Node> map2Node(List<Map> list) {
        List result = []
        list.each {
            result.add(map2Node(it))
        }
        return result
//        JSON.parseArray(JSON.toJSONString(list), Node.class)
    }

    public static Node map2Node(Map map) {
        JSON.parseObject(JSON.toJSONString(map), Node.class)
    }

    public static class Header {
        /** 系统标识 */
        String sourceSystem
        /** 消息id */
        String messageId
    }

    public static class Node {
        /** 环节id */
        String id
        /** 环节name，优先使用id */
        String name
        /** 路径id（多级路径时","分割） */
        String tid
        /** 路径名称（多级路径时","分割），优先使用id */
        String tname
        /** 待办人 */
        List<User> users
    }

    public static class User {
        /** 待办人id */
        String id
        /** 待办人名称 */
        String name
    }
}
